Deacom Local

Deacom Local is a program that users can install on their computer to add additional functionality to the Deacom web interface. The program communicates with the browser and server through web sockets. The Deacom Local option is used to connect to any local hardware that is supported in Deacom web versions. This allows users to do things like:

  • Print to a printer attached to their computer but not shared on the network or not shared with the server running the Deacom web services.
  • Communicate with peripherals such as a wedge scanner.
  • Connect with POS cash drawers and displays.

Currently, this includes local printers (including ZPL), scales for final staging or sales packages, and credit card readers, including EMV readers. A common use includes installation by a CFO so that they have access to the check printer. This feature will typically not be utilized by those who have mostly shared network printers.

Notes:

  1. If using Deacom's managed cloud services, or running an off-premises Deacom application server, see the Installing Deacom Cloud Local page.
  2. Deacom Local is not supported on Mac OS.

Configuration

Configuration information is contained within the Process section.

Process

  1. Navigate to the User Menu, represented by the 'person' icon on the top right side of the Main Menu.
  2. Select the "Local - Not Connected" option in the menu.
  3. On the prompt asking if the user would like to install the option, click “Yes”. The application will download an executable, which can be clicked to begin the installation process.
  4. On the Install Deacom Local window that opens, choose the correct location for the installation (the default points to the PC’s Program Files folder, which is fine) then click "Install".
  5. A prompt should appear indicating "Deacom Local has been installed successfully!". Click "OK" on the prompt.
  6. The Deacom Local icon should now be visible in the system tray.
  7. Return to the Deacom application and verify it says "Local - Connected" in the File menu. If it still reads "Local - Not Connected", log out then back in and check again. Once properly installed, any local printer should be available to print to.

Notes:

  • The "Deacom.Local.Installer.exe" file is located in the folder containing the Deacom application, specifically via WWW Services\Content\Local
  • The user will need the appropriate security on their PC in order to install the program. This is not Deacom security but rather Windows security. The user will also need security to access/modify the local directory where the Deacom Local option will be installed.
  • The Deacom Local program will need to be included in the user's startup area for future use. If the computer where Deacom Local is installed will be used by multiple users needing access to the program, see the FAQ section below for information on how to automatically register the program.
  • For EMV card readers, Deacom Local is used to get the mac address of the local computer to tie the pin pad settings to the local pc. Deacom LOCAL is also the point to start DataCap Listener app and sends a bool to the server whether the app was successfully found/started.
  • Note that the system will print raw ZPL labels to printers via Deacom Local. If you wish to have a ZPL printer set as your local printer on a PC/laptop, then Deacom Local must be installed.
  • If you are unable to print, one step to try is to re install Deacom Local from the version of the Deacom application you are currently using.

Using a group policy to install Deacom Local

  1. Install Deacom Local on an administrator’s PC, either through the web interface or from the Deacom\Production\WWWServices\Content\Local folder.
  2. Copy the Deacom Local files from the installation folder to a network share that all users can access. By default, it installs to the C:\Program Files\Deacom\Local\15.0x folder.
  3. On the Active Directory domain controller, open Control Panel > Administrative Tools > Group Policy Management.
  4. Edit the Default Domain Policy.
  5. Under Computer Configuration > Preferences > Windows Settings > Files, create a new entry.
  6. Set the Action to Create.
  7. Set the Source file to the network share above, \\server\share\folder\*.*
  8. Set the Destination to C:\Program Files\Deacom\Local\version\
  9. Click the Ok button to save the entry.
  10. Under Computer Configuration > Preferences > Windows Settings > Registry, create a new entry.
  11. Set the Action to Create.
  12. Set the Hive to HKEY_Current_User
  13. Set the Key Path to Software\Microsoft\Windows\CurrentVersion\Run
  14. Set the Value Name to Deacom.Local
  15. Set the Value Type to REG_SZ
  16. Set the Value Data to C:\Program Files\Deacom\Local\version\Deacom.Local.exe
  17. Click the Ok button to save the entry.

Afterwards, any user that logs in should automatically get Deacom.Local installed and configured to run on startup.

Note: In Active Directory, user can have both Machines and User Groups. If a user makes a Group policy for the machines, the registry key for the Deacom Local group policy must apply to HKEY_LOCAL_MACHINE, otherwise, if using group policy for user accounts, use HKEY_CURRENT_USER. A user policy cannot be applied to machines and vice versa.

Configuring Deacom Local to connect via HTTPS

To connect to the browser over HTTPS, Deacom.Local must install a certificate on the machine running Deacom Local. This certificate is then used by various web browsers to establish a secure connection for communication between Deacom and Deacom Local. If this certificate gets removed from a machine for any reason the connection to Deacom Local is no longer trusted by the browser and the connection is blocked. If a certificate gets removed after installation from a user's workstation it is often caused by a group policy, anti-virus, or the configuration of the Windows Automatic Root Certificates Update setting.

To fix this, we recommend adding the certificate to a group policy to be distributed to all Local or Domain users.

  1. Install Deacom Local to your PC to re-create the certificate.
  2. Click Start and type “cert” to search for the “Manage computer certificates” applet.
  3. In Trusted Root Certification Authorities > Certificates, find the certificate with the name "localhost". The expiration date on the certificate will be 12/31/9999
  4. Export the certificate. Either the .CER or .P7B file formats will work.
  5. Copy the file to a domain controller.
  6. Log into the domain controller via console or RDP.
  7. Open Control Panel > Administrative Tools > Group Policy Management
  8. Create a new policy or edit the Default Domain Policy.
  9. Navigate to Computer Configuration > Policies > Windows Settings > Security Settings > Public Key Policies > Trusted Root Certification Authorities
  10. Right-click and choose Import.
  11. Walk through the wizard and select the certificate file that you copied to the server.
  12. After you finish the wizard, and if you created a new policy, assign the policy to the appropriate organizational unit.

Afterwards, you can run gpupdate /force on any workstation in the OU to apply the policy and get the certificate. The Deacom.Local app needs to be closed and re-opened to use the new certificate. This can also be accomplished by logging off and logging back in.

Multi-User RDP Local

Beginning in version 17.01.020, dynamic ports may be added to DeacomLocal. This options handles scenarios in which multiple users are connecting to the same RDS server, and each RDS session has its own Deacom Local server running and needs their web app session to connect to their own Deacom Local server. The process and details associated with this option are outlined below.

  • The client PC running Deacom Local can now set up Windows Environment Variables (variable names must be either `DeacomLocalPort` for http or `DeacomLocalPortSecure` for https. This will make Deacom Local use the port number assigned to these variables.
  • Deacom Local will also get the current user's Window Session Id and store it to use to filter out any messages sent from the user's local web app session to Deacom Local.
  • In order for the local web app session to connect to Deacom Local successfully, two URL parameters must be passed in when connecting to the web app via the browser:
    • - `DeacomLocalPort` or `DeacomLocalPortSecure`
    • - `WindowsSessionId`
  • Once the user connects to the web app and passes in these URL parameters, the web app session will connect to the Deacom Local service running on the user's local computer.
  • If the web app session can connect to the Deacom Local service successfully, then cookies will get created so that the user can re-use the Deacom Local port and Windows Session Id whenever they connect to the same web app without having to pass in the URL parameters again.
  • If the user ever signs out of their current RDS session, and then sign back in, they will need to pass in their new Windows Session Id when connecting to the web app in order for their Deacom Local server to receive messages from their web app session successfully. Note - if they simply close the RDS window without logging out of the RDS session, then they should be able to use their original Windows Session Id since it should not have changed.

FAQ and Diagnostic Tips

Is there a way that once the Deacom Local program is installed, that it can be automatically registered for all users that will use the computer?

Yes, put Deacom.Local.Installer.exe on a network drive and include it in the startup script for when a user logs onto the computer.

TIP: When printing barcodes using Deacom Local, the barcode fonts will need to be installed on the PC connected to the local printer.

TIP: Here is a useful option to get Deacom Local connected.

  • If you go to your browser and type edge://flags in the search bar, you'll get a page titled "Experiments". Search for "local", and then flip the below setting to Enabled. After that you can download local and install it in the usual fashion.
  • If you're using Google Chrome then it's chrome://flags

Troubleshooting Tips

There are a few various reasons why Deacom Local may not be working. If the system keeps stating Deacom Local is not connected, check the system tray and verify the program is actually running. Additional troubleshooting steps are below. If multiple workarounds have been attempted but Deacom Local is still not responding, un-installing and re-installing should fix the issue.

Note: Beginning in versions 17.01.143, In response to connectivity issues with Deacom.Local due to a missing Subject Alternative Name, new certificates have been implemented to ensure seamless access across Chrome, Edge, and Firefox browsers. A root certificate is now installed in the Trusted Roots section of user certificates, alongside a 127.0.0.1 certificate that includes localhost and 127.0.0.1 in its Subject Alternate Name. Additionally, a new MSI file has been created to facilitate group policy deployment, ensuring the proper installation of these certificates. Users can expect Deacom.Local to connect smoothly, allowing access to local printers, and the system will launch on startup following installation. These improvements aim to enhance user experience by resolving previous access issues effectively.

Note: If running HTTPS in Firefox, you must first add the certificate to the exception list.

  1. Install latest Deacom and Deacom Local
  2. Set up IIS for HTTPS access.
  3. Ensure that there are no web browser open that will make any request to Deacom Local (for instance, tracker).
  4. Run Deacom Local.
  5. Different versions of Deacom Local listen on different ports. e.g. 16.07 listens on 41607, 17.00 listens on 41700, 17.01 listens on 41701.
  6. You can verify Deacom Local is listening by opening PowerShell and running Get-NetTcpConnection -State Listen
  7. If running for the first time, visit https://localhost:41607/ (change the port number to match the version) and add an exception if there is a security warning.
  8. Visit the https page of the Deacom system instance and log in.
  9. Click file and verified Deacom local is connected.
  10. Print a sales order to a local printer.
  11. Verified local printer printed sales order.